/**
 * readonly 表示的是只读  这个和 const 是很像的
 *  但是readonly在特定的情况下是可以改的 并不是永久都不能改
 * 
 * 常见题：readonly的值是不可修改的 （错误）  readonly在构造函数期间是可以修改的
 */

{
  class Axios{
    readonly site:string = 'http://jimmyxuexue.com/api'
    constructor(site?:string){
      /**
       * 在类的构造期间 是可以修改 readonly 的值的
       */
      this.site = site||this.site
    }
    get(url:string):any[]{
      console.log(`请求了${this.site}/${url}`)
      return []
    }
  }

  let axios = new Axios()
  axios.get('user')
  // axios.site = '11111' 无法分配到 "site" ，因为它是只读属性。
}